<?php
/**
 * 这个脚本用于找出body元素的所有div，以及这些div元素的直接子div元素，然后用div元素的id属性值与“main_center”比较，如果找到就打印并中断循环
 * User: ford
 * Date: 15-7-10
 * Time: 上午9:21
 */

$xml = simplexml_load_file("template.xhtml");
findDivContentsById($xml, "main_center");

/**
 * 搜索XML文档body元素下的div元素（两层）
 * @param $xml
 * @param $id
 */
function findDivContentsById($xml, $id) {
	foreach ($xml->body->div as $divs) {
		if (!empty($divs->div)) {
			foreach($divs->div as $inner_divs) {
				if(isElementWithID($inner_divs, $id)) {
					break 2;
				}
			}
		} else {
			if(isElementWithID($divs, $id)) {
				break;
			}
		}
	}
}

/**
 * 如果元素有给定的id属性返回true
 * @param $element SimpleXMLElement，用于访问元素属性
 * @param $id
 * @return bool
 */
function isElementWithID($element, $id) {
	$actual_id = (String)$element->attributes()->id;	//attributes方法返回的是一个元素属性对象，可用来直接访问元素的各个属性
	if($actual_id == $id) {
		$value = trim((String) $element);
		echo "value of #$id is: $value";

		return true;
	}

	return false;
}